#!/usr/bin/env bash

set -e

source <(cargo llvm-cov show-env --export-prefix "$@")
cargo llvm-cov clean --workspace

cargo build --locked --all-targets --all-features
cargo test --locked --all-features
cargo test --locked --no-default-features --features tls12,logging,aws_lc_rs,fips,std
cargo test --locked --no-default-features --features tls12,logging,ring,std

# ensure both zlib and brotli are tested, irrespective of their order
cargo test --locked $(admin/all-features-except zlib rustls)
cargo test --locked $(admin/all-features-except brotli rustls)

## bogo
cargo test --locked --test bogo -- --ignored --test-threads 1

## provider tests
cargo test --locked --package rustls-provider-test

cargo llvm-cov report "$@"
